﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using liclSolcred.Views;
using com.creditos.be.liclSolcred;
using com.creditos.util.liclUtil;
using com.creditos.be.liclUtil;

public partial class solcred_FormsManSolicitud : CreditosPaseBase, IFormsManSolicitudView
{
    private liclSolcred.Views.FormsManSolicitudPresenter oPresenter = new FormsManSolicitudPresenter();
    public string sMsgError = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            oPresenter.View = this;
            oPresenter.Load(new ProductoBE());
            InsertarSeleccione();
            Master.TituloModulo = "Registro de Solicitudes de Prestamos Personales";
            if (Request.QueryString["NroSol"] != string.Empty && Request.QueryString["NroSol"] != null)
            {
                SolicitudBE oSolicitud = new SolicitudBE();
                txtNroSolicitud.Text = Request.QueryString["NroSol"];
                oSolicitud.NumeroSolicitud = int.Parse(Utilitario.DarFormatoEnteroCero(txtNroSolicitud.Text.Trim()));
                oPresenter.BuscarSolicitudxNumero(oSolicitud);
                UCBarraHerramientas1.btnAprueba.Visible = true;
                UCBarraHerramientas1.btnRegresar.Visible = true;
                if (Request.QueryString["tipo"] == "1")
                {
                    UCBarraHerramientas1.btnObserva.Visible = true;
                    UCBarraHerramientas1.btnEditar.Visible = true;
                    UCBarraHerramientas1.btnRechaza.Visible = true;
                    UCBarraHerramientas1.btnGuardar.Visible = true;
                    UCBarraHerramientas1.btnBuroCreditos.Visible = true;                 
                }
            }
            else
            {
                UCBarraHerramientas1.btnAprueba.Visible = false;                
                ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoInicial);
                UCBarraHerramientas1.btnGuardar.Visible = true;
                UCBarraHerramientas1.btnNuevo.Visible = true;
                UCBarraHerramientas1.btnCancelar.Visible = true;
                UCBarraHerramientas1.btnObserva.Visible = true;
                UCBarraHerramientas1.btnEditar.Visible = true;
                UCBarraHerramientas1.btnRechaza.Visible = true;
                UCBarraHerramientas1.btnRegresar.Visible = true;
                UCBarraHerramientas1.btnBuroCreditos.Visible = true;
            }
        }
        oPresenter.View = this;
        
    }

    protected override void DefineHandlers()
    {
        ddlProducto.SelectedIndexChanged += new EventHandler(ddlProducto_SelectedIndexChanged);
        ddlSubProducto.SelectedIndexChanged += new EventHandler(ddlSubProducto_SelectedIndexChanged);
        ddlTipoCanalVenta.SelectedIndexChanged += new EventHandler(ddlTipoCanalVenta_SelectedIndexChanged);
        ddlCiiuGrupo.SelectedIndexChanged += new EventHandler(ddlCiiuGrupo_SelectedIndexChanged);
        UCBarraHerramientas1.btnNuevo.Click += new EventHandler(btnNuevo_Click);
        UCBarraHerramientas1.btnGuardar.Click += new EventHandler(btnGuardar_Click);
        UCBarraHerramientas1.btnGuardar.Attributes.Add("onClick", "if(!procesandoConfirma('" + "Esta seguro que desea registrar Solicitud de Credito?" + "'))return false;");
        UCBarraHerramientas1.btnCancelar.Click += new EventHandler(btnCancelar_Click);
        UCBarraHerramientas1.btnCancelar.Attributes.Add("onClick", "if(!procesandoConfirma('" + "Esta seguro que desea cancelar la operacion?" + "'))return false;");
        btnConsultarSolicitud.Click += new EventHandler(btnConsultarSolicitud_Click);
        btnBuscarPromotor.Attributes.Add("OnClick", "abrirPopupPromotor();return false;");   

        btnBuscarDNI.Click += new ImageClickEventHandler(btnBuscarDNI_Click);
        btnBuscarRUC.Click += new ImageClickEventHandler(btnBuscarRUC_Click);
        UCBarraHerramientas1.btnEditar.Click += new EventHandler(btnEditar_Click);
        btnCalcularTasa.Click += new EventHandler(btnCalcularTasa_Click);
        UCBarraHerramientas1.btnObserva.Click += new EventHandler(btnObserva_Click);
        UCBarraHerramientas1.btnRechaza.Click += new EventHandler(btnRechaza_Click);
        UCBarraHerramientas1.btnRegresar.Click += new EventHandler(btnRegresar_Click);
        UCBarraHerramientas1.btnAprueba.Click += new EventHandler(btnAprueba_Click);
        UCBarraHerramientas1.btnBuroCreditos.Click += new EventHandler(btnBuroCreditos_Click);

        string direccion = SolicitudBETemp == null ? string.Empty : SolicitudBETemp.DireccionDomicilio;
        int departamento = SolicitudBETemp == null ? 0 : SolicitudBETemp.CodigoDepartamento;
        int provincia = SolicitudBETemp == null ? 0 : SolicitudBETemp.CodigoProvincia;
        int distrito = SolicitudBETemp == null ? 0 : SolicitudBETemp.CodigoDistrito;

        string direccionLaboral = SolicitudBETemp == null ? string.Empty : SolicitudBETemp.DireccionLaboral;
        int departamentoLaboral = SolicitudBETemp == null ? 0 : SolicitudBETemp.CodigoDepartamentoJ;
        int provinciaLaboral = SolicitudBETemp == null ? 0 : SolicitudBETemp.CodigoProvinciaJ;
        int distritoLaboral = SolicitudBETemp == null ? 0 : SolicitudBETemp.CodigoDistritoJ;

        btnDireccionPersona.Attributes.Add("OnClick", "abrirPopupDireccion('1','" + direccion + "','" + departamento + "','" + provincia + "','" + distrito + "');return false;");
        btnDireccionNegocio.Attributes.Add("OnClick", "abrirPopupDireccion('0','" + direccionLaboral + "','" + departamentoLaboral + "','" + provinciaLaboral + "','" + distritoLaboral + "');return false;");
    }

    void btnBuscarRUC_Click(object sender, ImageClickEventArgs e)
    {        
        if (validarNegocio())
        {
            ClienteBE oCliente = new ClienteBE();
            oCliente.TipoDocumento = 5;
            oCliente.NumeroDocumento = txtRuc.Text.Trim();
            oPresenter.ListarCliente(oCliente, 1);
        }
    }

    void btnBuscarDNI_Click(object sender, ImageClickEventArgs e)
    {
        if (validarCliente())
        {
            ClienteBE oCliente = new ClienteBE();
            oCliente.TipoDocumento = int.Parse(ddlTipoDocumento.SelectedValue);
            oCliente.NumeroDocumento = txtNroDocumento.Text.Trim();
            oPresenter.ListarCliente(oCliente, 0);
        }
    }

    void ddlCiiuGrupo_SelectedIndexChanged(object sender, EventArgs e)
    {
        CiiuBE oCiiu = new CiiuBE();
        oCiiu.Grupo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCiiuGrupo.SelectedValue));
        oPresenter.ListarCiiuActividad(oCiiu);
    }

    void ddlTipoCanalVenta_SelectedIndexChanged(object sender, EventArgs e)
    {
        CanalVentaBE oParametro = new CanalVentaBE();
        oParametro.Tipo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoCanalVenta.SelectedValue));
        oPresenter.ListarCanalVenta(oParametro);
    }
    

  

    void ddlSubProducto_SelectedIndexChanged(object sender, EventArgs e)
    {
        ParametroBE oParametro = new ParametroBE();
        oParametro.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue));
        oParametro.CodigoSubProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlSubProducto.SelectedValue));
        oPresenter.ListarTipoEvaluacion(oParametro);
        oPresenter.ListarCampana(oParametro);
    }

    void btnConsultarSolicitud_Click(object sender, EventArgs e)
    {
        SolicitudBE oSolicitud = new SolicitudBE();
        oSolicitud.NumeroSolicitud = int.Parse(Utilitario.DarFormatoEnteroCero(txtNroSolicitud.Text.Trim()));
        Master.OcultarMensaje();
        if (oSolicitud.NumeroSolicitud > 0)
        {         
            ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoBuscar);         
            oPresenter.BuscarSolicitudxNumero(oSolicitud); 

        }
        else{
            MostrarMensajeError("Debe Ingresar Numero de Solicitud");                   
        }

    }

    void btnCancelar_Click(object sender, EventArgs e)
    {
        Modo =  Utilitario.Modo.Lectura;
        ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoInicial);
    }

    void btnGuardar_Click(object sender, EventArgs e)
    {
        Master.OcultarMensaje();
        
        RestaurarColor();
        if (Modo == Utilitario.Modo.Nuevo || Modo == Utilitario.Modo.Edicion)
        {
            if (ValidarControles()) //NO HAY ERROR PROCEDE A GUARDAR
            {
                SolicitudBE oSolicitud = GuardarValores();

                ClienteBE oCliente = new ClienteBE ();
                oCliente.NumeroDocumento = txtNroDocumento.Text.Trim();
                oCliente.TipoDocumento = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoDocumento.SelectedValue.ToString()));
                int nSolicitudesVigentes = oPresenter.SolicitudesRegistradas(oCliente);
                if (Modo == Utilitario.Modo.Nuevo)
                {
                    if (nSolicitudesVigentes == 0) //if (oPresenter.SolicitudesRegistradas(oCliente) == 0)
                    {
                        oPresenter.GuardarSolicitud(oSolicitud);
                        ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoBuscar);
                    }
                    else
                    {
                        MostrarMensajeError("DNI tiene Solicitudes registradas y se encuentran en Tramite");
                    }
                }
                else if (Modo == Utilitario.Modo.Edicion)
                {
                    oPresenter.GuardarSolicitud(oSolicitud);
                    ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoBuscar);
                }
            }
            else
            {
                MostrarMensajeError(sMsgError);
            }

        } 
    }

    private void HabilitarBarra(bool bolActivar)
    {
        foreach (Control item in UCBarraHerramientas1.Controls)
        {
            if (item is Button)
            {
                ((Button)item).Enabled = bolActivar;
            }
        }
    }

    private void HabilitarPaneles(bool bolEstado)
    {
        pnlDatosCabecera.Enabled = bolEstado;
        pnlDatosPersonales.Enabled = bolEstado;
        pnlDatosNegocio.Enabled = bolEstado;
        pnlDatosCredito.Enabled = bolEstado;
        pnlDatosResolucion.Enabled = bolEstado;
    }

    private void ConfigurarInterfaz(Utilitario.ModoInterfaz enuTipo)
    {
        HabilitarBarra(false);
        HabilitarPaneles(false);
        switch (enuTipo)
        {
            case Utilitario.ModoInterfaz.ModoInicial:
                #region Botones ------------
                UCBarraHerramientas1.btnBuscar.Enabled = UCBarraHerramientas1.btnBuscar.Enabled = true;
                UCBarraHerramientas1.btnNuevo.Enabled = UCBarraHerramientas1.btnNuevo.Enabled = true;
                UCBarraHerramientas1.btnRegresar.Enabled = true;
                #endregion
                #region Paneles ------------
                pnlDatosCabecera.Visible = false;
                pnlDatosCredito.Visible = false;
                pnlDatosNegocio.Visible = false;
                pnlDatosPersonales.Visible = false;
                pnlDatosResolucion.Visible = false;
                #endregion
                txtNroSolicitud.ReadOnly = false;
                txtNroSolicitud.Visible = true;
                btnConsultarSolicitud.Visible = true;
                lblFecha.Visible = false;
                break;
            case Utilitario.ModoInterfaz.ModoBuscar:
                #region Botones ------------
                UCBarraHerramientas1.btnBuscar.Enabled = UCBarraHerramientas1.btnBuscar.Enabled = true;
                UCBarraHerramientas1.btnNuevo.Enabled = UCBarraHerramientas1.btnNuevo.Enabled = true;
                UCBarraHerramientas1.btnEditar.Enabled = UCBarraHerramientas1.btnEditar.Enabled = true;
                UCBarraHerramientas1.btnChklist.Enabled = UCBarraHerramientas1.btnChklist.Enabled = true;
                UCBarraHerramientas1.btnReingreso.Enabled = UCBarraHerramientas1.btnReingreso.Enabled = true;
                UCBarraHerramientas1.btnObserva.Enabled = UCBarraHerramientas1.btnObserva.Enabled = true;
                UCBarraHerramientas1.btnRechaza.Enabled = UCBarraHerramientas1.btnRechaza.Enabled = true;
                UCBarraHerramientas1.btnVerificacion.Enabled = UCBarraHerramientas1.btnVerificacion.Enabled = true;
                UCBarraHerramientas1.btnAprueba.Enabled = UCBarraHerramientas1.btnAprueba.Enabled = true;
                UCBarraHerramientas1.btnForzar.Enabled = UCBarraHerramientas1.btnForzar.Enabled = true;
                UCBarraHerramientas1.btnBuroCreditos.Enabled = UCBarraHerramientas1.btnBuroCreditos.Enabled = true;
                UCBarraHerramientas1.btnCancelar.Enabled = UCBarraHerramientas1.btnCancelar.Enabled = false;
                UCBarraHerramientas1.btnRegresar.Enabled = true;
                #endregion
                #region Paneles ------------
                pnlDatosCabecera.Visible = true ;
                pnlDatosCredito.Visible = true;
                pnlDatosNegocio.Visible = true;
                pnlDatosPersonales.Visible = true;
                pnlDatosResolucion.Visible = true;
                #endregion
                HabilitarPaneles(false);
                txtNroSolicitud.ReadOnly = false;
                btnConsultarSolicitud.Visible = true;
                lblFecha.Visible = true;
                gvwReferencias.Enabled = true;
                btnAprobacionDesembolso.Enabled = true;
                break;
            case Utilitario.ModoInterfaz.ModoNuevo:
                #region Botones ------------
                UCBarraHerramientas1.btnGuardar.Enabled = UCBarraHerramientas1.btnGuardar.Enabled = true;
                UCBarraHerramientas1.btnIrAvales.Enabled = UCBarraHerramientas1.btnIrAvales.Enabled = true;
                UCBarraHerramientas1.btnCancelar.Enabled = UCBarraHerramientas1.btnCancelar.Enabled = true;
                UCBarraHerramientas1.btnRegresar.Enabled = false;
                #endregion
                #region Paneles ------------
                pnlDatosCabecera.Visible = true;
                pnlDatosPersonales.Visible = true;
                pnlDatosNegocio.Visible = true;
                pnlDatosCredito.Visible = true;
                pnlDatosResolucion.Visible = false;
                #endregion
                InicializarControles();
                HabilitarPaneles(true);
                txtNroSolicitud.ReadOnly = true;
                btnConsultarSolicitud.Visible = false;
                gvwReferencias.Enabled = false;
                btnSolicitarCambioTasa.Enabled = false;
                btnAprobarCambioTasa.Enabled = false;
                break;
            case Utilitario.ModoInterfaz.ModoEdicion:
                #region Botones ------------
                UCBarraHerramientas1.btnGuardar.Enabled = UCBarraHerramientas1.btnGuardar.Enabled = true;
                UCBarraHerramientas1.btnChklist.Enabled = UCBarraHerramientas1.btnChklist.Enabled = true;
                UCBarraHerramientas1.btnIrAvales.Enabled = UCBarraHerramientas1.btnIrAvales.Enabled = true;
                UCBarraHerramientas1.btnCancelar.Enabled = UCBarraHerramientas1.btnCancelar.Enabled = true;
                UCBarraHerramientas1.btnRegresar.Enabled = false;
                #endregion
                #region Paneles ------------
                pnlDatosCabecera.Visible = true;
                pnlDatosPersonales.Visible = true;
                pnlDatosNegocio.Visible = true;
                pnlDatosCredito.Visible = true;
                pnlDatosResolucion.Visible = false;

                txtNroSolicitud.ReadOnly = true;
                gvwReferencias.Enabled = false;
                btnSolicitarCambioTasa.Enabled = true;
                btnAprobarCambioTasa.Enabled = true;

                HabilitarPaneles(true);
                #endregion
                break;

             

            default:
                break;
        }
        /*if (SolicitudPPTemp != null)
            ConfigurarInterfazXEstado(tipo);*/
    }

    public SolicitudBE GuardarValores()
    {
        SolicitudBE oSolicitud = new SolicitudBE();
        switch (Modo)
        {
            case Utilitario.Modo.Nuevo:
                oSolicitud.Accion = 1;
                break;
            case Utilitario.Modo.Edicion:
                oSolicitud.Accion = 2;
                oSolicitud.NumeroSolicitud = int.Parse(Utilitario.DarFormatoEnteroCero(txtNroSolicitud.Text.Trim()));
                break;
        }
        #region Datos Cabecera
        oSolicitud.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue.ToString()));
        oSolicitud.DescripcionProducto = ddlProducto.SelectedItem.Text.Trim();
        oSolicitud.CodigoSubProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlSubProducto.SelectedValue.ToString()));
        oSolicitud.DescripcionSubProducto = ddlSubProducto.SelectedItem.Text.Trim();
        oSolicitud.TipoPersona = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoEmpleo.SelectedValue.ToString()));
        oSolicitud.FechaSolicitud = DateTime.Parse(Utilitario.DarFormatoFecha(lblFecSol.Text.Trim()));
        oSolicitud.TipoEvaluacion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoEvaluacion.SelectedValue.ToString()));
        oSolicitud.DescripcionTipoEvaluacion = ddlTipoEvaluacion.SelectedItem.Text.Trim();
        oSolicitud.Campana = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCampana.SelectedValue.ToString()));
        oSolicitud.DescripcionCampana = ddlCampana.SelectedItem.Text.Trim();
        oSolicitud.TipoCanalVenta = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoCanalVenta.SelectedValue.ToString()));
        oSolicitud.CanalVenta = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCanalVenta.SelectedValue.ToString()));
        oSolicitud.DescripcionCanalVenta = ddlTipoCanalVenta.SelectedItem.Text.Trim();
        oSolicitud.Promotor = int.Parse(Utilitario.DarFormatoEnteroCero(hdfCodigoPromotor.Value.Trim()));
        oSolicitud.NombrePromotor = hdfNombrePromotor.Value.Trim();
        oSolicitud.DescripcionPromotor = hdfNombrePromotor.Value.Trim();
        oSolicitud.TipoCliente = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoEmpleo.SelectedValue.ToString()));
        #endregion

        #region Datos Personales
        oSolicitud.TipoDocumento = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoDocumento.SelectedValue.ToString()));
        oSolicitud.NumeroDocumento = txtNroDocumento.Text.Trim();
        oSolicitud.ApellidoPaterno = txtApellidoPaterno.Text.Trim().ToUpper();
        oSolicitud.ApellidoMaterno = txtApellidoMaterno.Text.Trim().ToUpper();
        oSolicitud.PrimerNombre = txtNombre1.Text.Trim().ToUpper();
        oSolicitud.SegundoNombre = txtNombre2.Text.Trim().ToUpper();
        oSolicitud.ApellidoCasada = txtApellidoCasada.Text.Trim().ToUpper();
        oSolicitud.Sexo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlSexo.SelectedValue.ToString()));
        oSolicitud.FechaNacimiento = UCFechaNacimiento.Value.HasValue ? UCFechaNacimiento.Value.Value : DateTime.MinValue;
        oSolicitud.TelefonoFijo = txtTelefonoPersona.Text.Trim();
        oSolicitud.TelefonoMovil = txtCelular.Text.Trim();
        oSolicitud.Nacionalidad = int.Parse(Utilitario.DarFormatoEnteroCero(ddlNacionalidad.SelectedValue.ToString()));
        oSolicitud.DireccionCorrespondencia = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCorrespondencia.SelectedValue.ToString()));
        oSolicitud.GradoInstruccion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlGradoInstruccion.SelectedValue.ToString()));
        oSolicitud.TipoVivienda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoVivienda.SelectedValue.ToString()));
        oSolicitud.Profesion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProfesion.SelectedValue.ToString()));
        oSolicitud.TiempoResidencia = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTiempoResidencia.SelectedValue.ToString()));
        oSolicitud.EstadoCivil = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoCivil.SelectedValue.ToString()));
        oSolicitud.NumeroDependientes = int.Parse(Utilitario.DarFormatoEnteroCero(ddlDependientes.SelectedValue.ToString()));
        oSolicitud.DireccionDomicilio = hdfDireccionPersona.Value.Trim();
        oSolicitud.ReferenciaDomicilio = txtReferenciaPersona.Text.Trim();
        oSolicitud.Agencia = int.Parse(Utilitario.DarFormatoEnteroCero(ddlAgencia.SelectedValue.ToString()));
        oSolicitud.DescripcionAgencia = ddlAgencia.SelectedItem.Text.Trim();
        oSolicitud.CodigoJefeAgencia = int.Parse(Utilitario.DarFormatoEnteroCero(txtCodigoGerente.Text.Trim()));
        oSolicitud.NombreJefeAgencia = txtNombreGerente.Text.Trim();
        oSolicitud.Email1 = txtEmail.Text.Trim().ToUpper();
        oSolicitud.CodigoFuncionario = int.Parse(Utilitario.DarFormatoEnteroCero(txtCodigoFuncionario.Text.Trim()));
        oSolicitud.NombreFuncionario = txtNombreFuncionario.Text.Trim();
        oSolicitud.CodigoDepartamento = int.Parse(Utilitario.DarFormatoEnteroCero(hdfDepartamento.Value));
        oSolicitud.CodigoProvincia = int.Parse(Utilitario.DarFormatoEnteroCero(hdfProvincia.Value));
        oSolicitud.CodigoDistrito = int.Parse(Utilitario.DarFormatoEnteroCero(hdfDistrito.Value));
        #endregion

        #region Datos del Negocio / Laborales
        oSolicitud.RUC = txtRuc.Text.Trim();
        oSolicitud.TelefonoLaboral = txtTelefonoLaboral.Text.Trim() + "-" + txtAnexoLaboral.Text.Trim();
        oSolicitud.Fax = txtFaxLaboral.Text.Trim();
        oSolicitud.RazonSocial = txtRazonSocial.Text.Trim();
        oSolicitud.Email2 = txtEmailLaboral.Text.Trim().ToUpper();
        oSolicitud.CIIUGrupo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCiiuGrupo.SelectedValue.ToString()));
        oSolicitud.CIIUActividad = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCiiuActividad.SelectedValue.ToString()));
        oSolicitud.Posicion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlPosicion.SelectedValue.ToString()));
        oSolicitud.Cargo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCargo.SelectedValue.ToString()));
        oSolicitud.DireccionLaboral = txtDireccionNegocio.Text.Trim();
        oSolicitud.ReferenciaDireccionLaboral = txtReferenciaNegocio.Text.Trim();
        oSolicitud.FechaIngresoLaboral = UCFechaIngreso.Value.HasValue ? UCFechaIngreso.Value.Value : DateTime.MinValue;
        oSolicitud.TiempoEmpleo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTiempoEmpleoAnterior.SelectedValue.ToString()));
        oSolicitud.IngresosTitular = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtTitular.Text.Trim(),2));
        oSolicitud.PatrimonioInmuebles = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtInmueble.Text.Trim(), 2));
        oSolicitud.IngresosConyuge = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtConyuge.Text.Trim(), 2));
        oSolicitud.PatrimonioAutos = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtAuto.Text.Trim(), 2));
        oSolicitud.IngresosOtros = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtOtros1.Text.Trim(), 2));
        oSolicitud.PatrimonioOtros = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtOtros2.Text.Trim(), 2));
        oSolicitud.CodigoDepartamentoJ = int.Parse(Utilitario.DarFormatoEnteroCero(hdfDepartamentoNegocio.Value));
        oSolicitud.CodigoProvinciaJ = int.Parse(Utilitario.DarFormatoEnteroCero(hdfProvinciaNegocio.Value));
        oSolicitud.CodigoDistritoJ = int.Parse(Utilitario.DarFormatoEnteroCero(hdfDistritoNegocio.Value));
      

        #endregion
        #region Datos Credito
        oSolicitud.FlagConvenio = rblConvenioSi.Checked ? 1 : 0;
        oSolicitud.SeguroDesempleo = rblSeguroDesempleoSi.Checked ? 1 : 0;
        oSolicitud.CuotasDobles = rblCuotasDoblesSi.Checked ? 1 : 0;
        oSolicitud.TipoCalculo = rblTipoCalculoM.Checked ? 1 : 0;
        oSolicitud.FinanciaGAT = rblFinanciaGATSi.Checked ? 1 : 0;
        oSolicitud.FlagEnfermedadesPreExistentes = rblEnfermedadPreexistenteSi.Checked ? 1 : 0;
        oSolicitud.TipoVencimiento = rblTipoVencimientoF.Checked ? 1 : 0;
        oSolicitud.AplicaSEG = rblAplicaCEGSi.Checked ? 1 : 0;
        oSolicitud.FlagGarantia = rblGarantiaRealSi.Checked ? 1 : 0;
        oSolicitud.CodigoConvenio = long.Parse(Utilitario.DarFormatoEnteroCero(txtCodigoConvenio.Text.Trim()));
        oSolicitud.ConvenioCuentaBT = long.Parse(Utilitario.DarFormatoEnteroCero(txtCuentaBTConvenio.Text.Trim()));
        //oSolicitud.ConvenioUbigeo  = 
        //oSolicitud.ConvenioTipo = 
        oSolicitud.TipoCuotaDoble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoCuotaDoble.SelectedValue.ToString()));
        oSolicitud.TipoPrestamo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoPrestamo.SelectedValue.ToString()));
        oSolicitud.CobroDesgravamen = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtValorDesgravamen.Text.Trim(), 2));
        oSolicitud.ComentarioSeguro = txtObservacionesDesgravamen.Text.Trim().ToUpper();
        oSolicitud.FechaPrimerVencimiento = UCPrimerVencimiento.Value.HasValue ? UCPrimerVencimiento.Value.Value : DateTime.MinValue;
        //oSolicitud.MonedaGarantia 
        //oSolicitud.Categoria
        oSolicitud.MonedaCredito = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCreditoSolMoneda.SelectedValue.ToString()));
        oSolicitud.ImporteCredito = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtCreditoSolMonto.Text.Trim(),2));
        oSolicitud.Plazo   = int.Parse(Utilitario.DarFormatoEnteroCero(txtCreditoSolPlazo.Text.Trim()));
        oSolicitud.ImporteTasa = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtCreditoSolTasa.Text.Trim(), 2));
        oSolicitud.ImporteCuota = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtCreditoSolCuota.Text.Trim(), 2));
        oSolicitud.ComisionDesembolso = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtMontoGAT.Text.Trim(), 2));
        oSolicitud.ValorDesgravamen = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtValorDesgravamen.Text.Trim(), 2));
        oSolicitud.CuentaAbono = hdfCuentaAbono.Value.Trim();
        oSolicitud.CuentaCargo = hdfCuentaCargo.Value.Trim();
        oSolicitud.ObservacionesSolicitudes = txtComentariosCreditos.Text.Trim().ToUpper();
        oSolicitud.ObservacionesCredito2 = txtComentariosCreditos.Text.Trim().ToUpper();
        oSolicitud.CodigoDesgravamen = int.Parse(Utilitario.DarFormatoEnteroCero(ddlDesgravamen.SelectedValue.ToString()));
        #endregion

        SolicitudBETemp = oSolicitud;

        return oSolicitud;
    }
    private bool validarCliente()
    {
        bool strError = true;
        try { int.Parse(ddlTipoDocumento.SelectedValue.Trim()); }
        catch (Exception)
        { 
            strError = false;
            MostrarMensajeError("Error en Tipo de Documento de Identidad");
        }
        if (txtNroDocumento.Text.Trim() == string.Empty)
        {
            strError = false;
            MostrarMensajeError("Error en Número de Documento de Identidad");
        }

        return strError;
    }
    private bool validarNegocio()
    {
        bool strError = true;      
        if (txtRuc.Text.Trim() == string.Empty)
        {
            strError = false;
            MostrarMensajeError("Error en Número de RUC");
        }

        return strError;
    }
    public bool ValidarControles()
    {
        bool strError = true;
        try
        {
            DateTime.Parse(UCFechaNacimiento.Texto.Trim());            
        }
        catch (Exception)
        {
            strError = false;
            MostrarMensajeError("Error en fecha de nacimiento ingrese una fecha validad");
        }
        try
        {
            //Seccion Cabecera
            if (ddlProducto.SelectedIndex == -1 || ddlProducto.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Producto, ";
            }

            if (hdfCodigoPromotor.Value == "")
            {
                strError = false;
                sMsgError = sMsgError + "Promotor, ";
            }

            if (hdfDepartamento.Value == "")
            {
                strError = false;
                sMsgError = sMsgError + "Departamento PN, ";
            }

            if (hdfProvincia.Value == "")
            {
                strError = false;
                sMsgError = sMsgError + "Provincia PN, ";
            }

            if (hdfDistrito.Value == "")
            {
                strError = false;
                sMsgError = sMsgError + "Distrito PN, ";
            }

            if (hdfDepartamentoNegocio.Value == "")
            {
                strError = false;
                sMsgError = sMsgError + "Departamento PJ, ";
            }

            if (hdfProvinciaNegocio.Value == "")
            {
                strError = false;
                sMsgError = sMsgError + "Provincia PJ, ";
            }

            if (hdfDistritoNegocio.Value == "")
            {
                strError = false;
                sMsgError = sMsgError + "Distrito PJ, ";
            }

            if (ddlCanalVenta.SelectedIndex == -1 || ddlCanalVenta.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Canal Venta, ";
            }
            if (ddlTipoCanalVenta.SelectedIndex == -1 || ddlTipoCanalVenta.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Tipo Canal Venta, ";
            }
            if (ddlSubProducto.SelectedIndex == -1 || ddlSubProducto.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Sub Producto, ";
            }
            if (ddlTipoEvaluacion.SelectedIndex == -1 || ddlTipoEvaluacion.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Tipo de Evaluacion, ";
            }
            if (ddlCampana.SelectedIndex == -1 || ddlCampana.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Campanna, ";
            }
            if (ddlAgencia.SelectedIndex == -1 || ddlAgencia.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Agencia, ";
            }

            //Seccion Datos Personales

            if (ddlTipoDocumento.SelectedIndex == -1 || ddlTipoDocumento.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Tipo de Documento, ";
            }
            if (txtNroDocumento.Text.Trim() == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Numero de Documento, ";
            }

            if (txtApellidoPaterno.Text.Trim() == string.Empty || txtApellidoMaterno.Text.Trim() == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Apellidos, ";
            }
            if (txtNombre1.Text.Trim() == string.Empty || txtNombre2.Text.Trim() == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Nombres, ";
            }
            if (ddlNacionalidad.SelectedIndex == -1 || ddlNacionalidad.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Nacionalidad, ";
            }
            if (ddlSexo.SelectedIndex == -1 || ddlSexo.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Sexo, ";
            }
            if (ddlEstadoCivil.SelectedIndex == -1 || ddlEstadoCivil.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Estado Civil, ";
            }

            //Seccion Datos Laborales
            if (txtRuc.Text.Trim() == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "RUC, ";
            }
            if (txtRazonSocial.Text.Trim() == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Razon Social, ";
            }
            if (ddlCiiuGrupo.SelectedIndex == -1 || ddlCiiuGrupo.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Ciiu(Grupo), ";
            }
            if (ddlCiiuActividad.SelectedIndex == -1 || ddlCiiuActividad.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Ciiu(Actividad), ";
            }
            if (Utilitario.EsNumeroPositivoDecimal(txtTitular.Text.Trim()) == false)
            {
                strError = false;
                sMsgError = sMsgError + "Ingreso Mensual no valido, ";
            }
            else
            {
                decimal importeIngreso = decimal.Parse(txtTitular.Text.Trim());
                if (importeIngreso <= 0)
                {
                    strError = false;
                    sMsgError = sMsgError + "Ingreso Mensual, ";
                }
            }
            //Seccion Datos Laborales
            if (ddlCreditoSolMoneda.SelectedIndex == -1 || ddlCreditoSolMoneda.SelectedValue == string.Empty)
            {
                strError = false;
                sMsgError = sMsgError + "Moneda Credito, ";
            }

            if ( Utilitario.EsNumeroPositivoDecimal(txtCreditoSolMonto.Text.Trim()) == false )
            {
                strError = false;
                sMsgError = sMsgError + "Importe credito no valido, ";
            }
            else
            {
                decimal importeCredito = decimal.Parse(txtCreditoSolMonto.Text.Trim());
                if (importeCredito <= 0 )
                    {
                    strError = false;
                    sMsgError = sMsgError + "Importe credito , ";
                    }
            }

            if (Utilitario.EsNumeroPositivoDecimal(txtCreditoSolPlazo.Text.Trim()) == false)
            {
                strError = false;
                sMsgError = sMsgError + "Plazo no valido, ";
            }
            else
            {
                decimal numeroPlazo = decimal.Parse(txtCreditoSolPlazo.Text.Trim());
                if (numeroPlazo <= 0)
                {
                    strError = false;
                    sMsgError = sMsgError + "Plazo, ";
                }
            }

        }
        catch (Exception)
        {
            
            throw;
        }
       // strError = true;
        return strError;
    }

    public void RestaurarColor()
    {
 
    } 

    private void CambiarColor(Control oControl, string strAccion)
    {
        if (oControl is TextBox)
        {
            ((TextBox)oControl).BorderColor = strAccion == Utilitario.AccionValidacion.Error ? System.Drawing.Color.Red : System.Drawing.Color.Empty;
        }
        if (oControl is DropDownList)
        {
            ((DropDownList)oControl).BorderColor = strAccion == Utilitario.AccionValidacion.Error ? System.Drawing.Color.Red : System.Drawing.Color.Empty;
        } 

    }

    void InicializarControles()
    {
        List<Control> lstControles = new List<Control>();
        lstControles = Utilitario.ListarControles(Page, 1);

        foreach (Control item in lstControles)
        {
            if (item is TextBox) { ((TextBox)item).Text = string.Empty; }
        }
        lstControles = Utilitario.ListarControles(Page, 2);
        foreach (Control item in lstControles)
        {
            if (item is DropDownList) { ((DropDownList)item).SelectedIndex = 0; }
        }
    }

    void btnNuevo_Click(object sender, EventArgs e)
    {        
        Modo = Utilitario.Modo.Nuevo;
        ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoNuevo);

        #region Valores por Defecto Controles
        UCPrimerVencimiento.Value = DateTime.Now.AddDays(30);
        ddlNacionalidad.SelectedIndex = ddlNacionalidad.Items.IndexOf(ddlNacionalidad.Items.FindByValue("1"));
        #endregion
    }

    void btnEditar_Click(object sender, EventArgs e) {
        Modo = Utilitario.Modo.Edicion;
        SolicitudBE oSolicitud = new SolicitudBE();
        oSolicitud = SolicitudBETemp;
        if (oSolicitud.Estado != 4 && oSolicitud.Estado != 5 && oSolicitud.Estado != 6)
        ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoEdicion);

    }

    void btnCalcularTasa_Click(object sender, EventArgs e)
    {

        SolicitudBE oSolicitud= new SolicitudBE();

        oSolicitud.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue.ToString()));        
        oSolicitud.CodigoSubProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlSubProducto.SelectedValue.ToString()));
        oSolicitud.MonedaCredito = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCreditoSolMoneda.SelectedValue.ToString()));
        oSolicitud.ImporteCredito = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtCreditoSolMonto.Text.Trim(),2));
        oSolicitud.Plazo   = int.Parse(Utilitario.DarFormatoEnteroCero(txtCreditoSolPlazo.Text.Trim()));
        oSolicitud.CodigoConvenio = long.Parse(Utilitario.DarFormatoEnteroCero(txtCodigoConvenio.Text.Trim()));
        oSolicitud.SeguroDesempleo = rblSeguroDesempleoSi.Checked ? 1 : 0;
        oSolicitud.CodigoDesgravamen = int.Parse(Utilitario.DarFormatoEnteroCero(ddlDesgravamen.SelectedValue.ToString()));
        oSolicitud.FinanciaGAT = rblFinanciaGATSi.Checked ? 1 : 0;

        oPresenter.CalcularTasa(oSolicitud);


    }

    void btnObserva_Click(object sender, EventArgs e)
    {
             
         ScriptManager.RegisterStartupScript(this, typeof(Page), "Evaluacion", "abrirPopupObservaRechaza('1');", true);
        
    }

    void btnRechaza_Click(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(this, typeof(Page), "Evaluacion", "abrirPopupObservaRechaza('2');", true);
    }

    void btnRegresar_Click(object sender, EventArgs e)
    {
        Response.Redirect("../FormsPrincipal.aspx");
    }


    void btnAprueba_Click(object sender, EventArgs e)
    {
        string url = "FormsManAprobar.aspx?NroSol=" + Request.QueryString["NroSol"];
        string script = "window.location = '" + url + "';";
        ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", script, true);
    }

    void btnBuroCreditos_Click(object sender, EventArgs e)
    {        

        string url = "FormsConCentralRiesgos.aspx?Solicitud=" + txtNroSolicitud.Text + "&Origen=" + 1;
        string script = "window.location = '" + url + "';";
        ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", script, true);
    }

    #region Propiedades
    public SolicitudBE SolicitudBETemp
    {
        get { return (SolicitudBE)Session["Solicitud"]; }
        set { Session["Solicitud"] = value; }
    }
    #endregion

    #region Eventos

    void ddlProducto_SelectedIndexChanged(object sender, EventArgs e)
    {
        ProductoBE oProducto = new ProductoBE();
        oProducto.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue));
        oPresenter.ListarSubProductos(oProducto);
    }

    #endregion

    public string ObtenerImagenSCI(string strFlagEnvio)
    {
        return string.Empty;
    }

    #region IFormsManSolicitudView Members

    public void CargarProductos(List<ProductoBE> lst)
    {
        UIBindable.Bind(ddlProducto, lst, "CodigoProducto", "DescripcionProducto");
        //UIBindable.InsertarSeleccionar(ddlProducto);
    }

    public void CargarSubProductos(List<SubProductoBE> lst)
    {
        UIBindable.Bind(ddlSubProducto, lst, "CodigoSubProducto", "DescripcionSubProducto");
        UIBindable.InsertarSeleccionar(ddlSubProducto);
    }

    public void CargarCIIU(List<CiiuBE> lst)
    {
        UIBindable.Bind(ddlCiiuGrupo, lst, "Grupo", "Descripcion");
   //     UIBindable.InsertarSeleccionar(ddlCiiuGrupo);
    }

  
    public void CargarAgencias(List<AgenciaBE> lst)
    {
        UIBindable.Bind(ddlAgencia, lst, "Codigo", "Descripcion", true);
    }

    public void MostrarMensajeError(string Mensaje)
    {
        Master.MostrarMensaje(Mensaje, 0);
    }

    public void CargarParametros(List<ParametroBE> lst)
    {
        if (lst.Count > 0)
        {
            switch (lst[0].CodigoTabla)
            {
                case 1:
                    UIBindable.Bind(ddlTipoDocumento, lst);
                    UIBindable.Bind(ddlAgencia, lst);
                    break;
                case 4:
                    UIBindable.Bind(ddlSexo, lst);
                    break;
                case 5:
                    UIBindable.Bind(ddlEstadoCivil, lst);
                    break;
                case 6:
                    UIBindable.Bind(ddlTipoVivienda, lst);
                    break;
                case 8:
                    UIBindable.Bind(ddlNacionalidad, lst);
                    break;
                case 9:
                    UIBindable.Bind(ddlGradoInstruccion, lst);
                    break;
                case 10:
                    UIBindable.Bind(ddlCargo, lst);
                    break;
                case 16:
                    UIBindable.Bind(ddlProfesion, lst);
                    break;

                case 18:
                    UIBindable.Bind(ddlTipoEmpleo, lst);
                    break;
                case 41:
                    UIBindable.Bind(ddlCreditoSolMoneda, lst);
                    break;
                case 57:
                    UIBindable.Bind(ddlCorrespondencia, lst);
                    break;
                case 236:
                    UIBindable.Bind(ddlDesgravamen, lst);
                    break;
                case 447:
                    UIBindable.Bind(ddlDependientes, lst);
                    break;
                case 861:
                    //UIBindable.Bind(ddlRegimenTributario, lst);
                    break;
                case 862:
                    //UIBindable.Bind(ddlTipoLocal, lst);
                    break;
                case 863:
                    //UIBindable.Bind(ddlTipoActividad, lst);
                    break;
                case 876:
                    UIBindable.Bind(ddlTipoCanalVenta, lst);
                    break;
                case 972:
                    UIBindable.Bind(ddlPosicion, lst);
                    break;
                case 984:
                    UIBindable.Bind(ddlTiempoEmpleoAnterior, lst);
                    UIBindable.Bind(ddlTiempoResidencia, lst);
                    break;
                case 535:
                    UIBindable.Bind(ddlTipoCuotaDoble, lst);
                    break;
                case 906:
                    UIBindable.Bind(ddlCreditoSolMoneda, lst);
                    break;
                case 103:
                    UIBindable.Bind(ddlTipoPrestamo, lst);
                    break;
            }
        }
    }

    public void CargarTipoEvaluacion(List<ParametroBE> lst)
    {
        UIBindable.Bind(ddlTipoEvaluacion, lst);
        UIBindable.InsertarSeleccionar(ddlTipoEvaluacion);
    }

    public void CargarCampana(List<CampanaBE> lst)
    {
        UIBindable.Bind(ddlCampana, lst, "Codigo", "Descripcion", true);
    }

    public void CargarCanalVenta(List<CanalVentaBE> lst)
    {
        UIBindable.Bind(ddlCanalVenta, lst, "Codigo", "Descripcion", true);
    }



    public void InsertarSeleccione() 
    {
        List<Control> lstControles = new List<Control> ();
        lstControles = Utilitario.ListarControles(Page, 2);
        foreach (Control item in lstControles)
        {
            UIBindable.InsertarSeleccionar((DropDownList)item);
        }
    }

    public string Modo
    {
        get { return (string)ViewState["modo"]; }
        set { ViewState["modo"] = value; }
    }

    #endregion

    #region IFormsManSolicitudView Members


    public void ObtenerNumeroSolicitud(double p)
    {
        txtNroSolicitud.Text = Utilitario.DarFormatoEnteroCero(p.ToString()) ;
        MostrarMensajeError("Solicitud Registrada con exito.");
    }

    public void CargarSolicitud(SolicitudBE oSolicitudBE)
    {
        if (oSolicitudBE.NumeroDocumento.Trim() != string.Empty)
        {
            //txtNroSolicitud.Text = Utilitario.DarFormatoEnteroCero(oSolicitudBE.NumeroSolicitud.ToString());
            #region Cabecera
            lblEstadoSolicitud.Text = oSolicitudBE.EstadoSolicitud.Trim();
            lblEstadoSolicitud.Visible = true;
            hdfFecSol.Value = oSolicitudBE.FechaSolicitud.ToString().Substring(0, 10);
            lblFecSol.Text = hdfFecSol.Value;
            hdfFecSol.Visible = true;
            txtRMA.Text = oSolicitudBE.RMA.ToString();
            txtRatioTDSR.Text = oSolicitudBE.RCI.ToString();            
            CanalVentaBE oCanalVenta = new CanalVentaBE();
            oCanalVenta.Tipo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoCanalVenta.SelectedValue));
            oPresenter.ListarCanalVenta(oCanalVenta);

            ddlTipoCanalVenta.SelectedIndex = ddlTipoCanalVenta.Items.IndexOf(ddlTipoCanalVenta.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TipoCanalVenta.ToString())));
            ddlCanalVenta.SelectedIndex = ddlCanalVenta.Items.IndexOf(ddlCanalVenta.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.CanalVenta.ToString())));
            txtPromotor.Text = oSolicitudBE.NombrePromotor.ToString();
            hdfCodigoPromotor.Value = oSolicitudBE.Promotor.ToString();
            ddlAgencia.SelectedIndex = ddlAgencia.Items.IndexOf(ddlAgencia.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.Agencia.ToString())));
            ddlTipoDocumento.SelectedIndex = ddlTipoDocumento.Items.IndexOf(ddlTipoDocumento.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TipoDocumento.ToString())));
            ddlProducto.SelectedIndex = ddlProducto.Items.IndexOf(ddlProducto.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.CodigoProducto.ToString())));

            hdfDepartamentoNegocio.Value = oSolicitudBE.CodigoDepartamentoJ.ToString();
            hdfProvinciaNegocio.Value = oSolicitudBE.CodigoProvinciaJ.ToString();
            hdfDistritoNegocio.Value = oSolicitudBE.CodigoDistritoJ.ToString();

            hdfDepartamento.Value = oSolicitudBE.CodigoDepartamento.ToString();
            hdfProvincia.Value = oSolicitudBE.CodigoProvincia.ToString();
            hdfDistrito.Value = oSolicitudBE.CodigoDistrito.ToString();

            hdfDireccionNegocio.Value = oSolicitudBE.DireccionLaboral;
            hdfDireccionPersona.Value = oSolicitudBE.DireccionDomicilio;

            ProductoBE oProducto = new ProductoBE();
            oProducto.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue));
            oPresenter.ListarSubProductos(oProducto);

            ddlSubProducto.SelectedIndex = ddlSubProducto.Items.IndexOf(ddlSubProducto.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.CodigoSubProducto.ToString())));

            ParametroBE oParametro = new ParametroBE();
            oParametro.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue));
            oParametro.CodigoSubProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlSubProducto.SelectedValue));
            oPresenter.ListarTipoEvaluacion(oParametro);
            oPresenter.ListarCampana(oParametro);

            ddlTipoEvaluacion.SelectedIndex = ddlTipoEvaluacion.Items.IndexOf(ddlTipoEvaluacion.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TipoEvaluacion.ToString())));
            ddlCampana.SelectedIndex = ddlCampana.Items.IndexOf(ddlCampana.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.Campana.ToString())));
            
            ddlTipoEmpleo.SelectedIndex = ddlTipoEmpleo.Items.IndexOf(ddlTipoEmpleo.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TipoEmpleo.ToString())));
            #endregion
            #region Datos Personales
            txtCodigoGerente.Text = oSolicitudBE.CodigoJefeAgencia.ToString();
            txtCodigoFuncionario.Text = oSolicitudBE.CodigoFuncionario.ToString();
            //responsable depsa
            //usuario registro
            //analista credito
            txtComentariosCreditos.Text = oSolicitudBE.ObservacionesCredito;
            ddlTipoDocumento.SelectedIndex = ddlTipoDocumento.Items.IndexOf(ddlTipoDocumento.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TipoDocumento.ToString())));
            txtNroDocumento.Text = oSolicitudBE.NumeroDocumento;
            txtApellidoPaterno.Text = oSolicitudBE.ApellidoPaterno;
            txtApellidoMaterno.Text = oSolicitudBE.ApellidoMaterno;
            txtNombre1.Text = oSolicitudBE.PrimerNombre;
            txtNombre2.Text = oSolicitudBE.SegundoNombre;
            ddlNacionalidad.SelectedIndex = ddlNacionalidad.Items.IndexOf(ddlNacionalidad.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.Nacionalidad.ToString())));
            ddlSexo.SelectedIndex = ddlSexo.Items.IndexOf(ddlSexo.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.Sexo.ToString())));
            ddlEstadoCivil.SelectedIndex = ddlEstadoCivil.Items.IndexOf(ddlEstadoCivil.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.EstadoCivil.ToString())));
            ddlGradoInstruccion.SelectedIndex = ddlGradoInstruccion.Items.IndexOf(ddlGradoInstruccion.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.GradoInstruccion.ToString())));
            UCFechaNacimiento.Value = oSolicitudBE.FechaNacimiento;
            txtDireccionPersona.Text = oSolicitudBE.DireccionDomicilio.Trim();
            txtReferenciaPersona.Text = oSolicitudBE.ReferenciaDomicilio.Trim();
            ddlTiempoResidencia.SelectedIndex = ddlTiempoResidencia.Items.IndexOf(ddlTiempoResidencia.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TiempoResidencia.ToString())));
            ddlTipoVivienda.SelectedIndex = ddlTipoVivienda.Items.IndexOf(ddlTipoVivienda.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TipoVivienda.ToString())));
            ddlDependientes.SelectedIndex = ddlDependientes.Items.IndexOf(ddlDependientes.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.NumeroDependientes.ToString())));
            ddlProfesion.SelectedIndex = ddlProfesion.Items.IndexOf(ddlProfesion.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.Profesion.ToString())));
            txtInmueble.Text = oSolicitudBE.PatrimonioInmuebles.ToString();
            txtAuto.Text = oSolicitudBE.PatrimonioAutos.ToString();
            txtOtros2.Text = oSolicitudBE.PatrimonioOtros.ToString();
            txtTelefonoPersona.Text = oSolicitudBE.TelefonoFijo.ToString();
            txtCelular.Text = oSolicitudBE.TelefonoMovil.ToString();
            txtEmail.Text = oSolicitudBE.Email1.ToString();
            txtDptoProvDistPersona.Text = oSolicitudBE.DepartamentoN + " - " + oSolicitudBE.ProvinciaN + " - " + oSolicitudBE.Distrito;

            #endregion
            #region Datos Persona Juridica
            txtRuc.Text = oSolicitudBE.RUC;
            txtRazonSocial.Text = oSolicitudBE.RazonSocial;
            txtDireccionNegocio.Text = oSolicitudBE.DireccionLaboral;
            txtReferenciaNegocio.Text = oSolicitudBE.ReferenciaDireccionLaboral;
            txtEmailLaboral.Text = oSolicitudBE.Email2;
            txtTelefonoLaboral.Text = oSolicitudBE.TelefonoLaboral;
            txtFaxLaboral.Text = oSolicitudBE.FaxLaboral;
            UCFechaIngreso.Value = oSolicitudBE.FechaIngresoLaboral;
            ddlTiempoEmpleoAnterior.SelectedIndex = ddlTiempoEmpleoAnterior.Items.IndexOf(ddlTiempoEmpleoAnterior.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.TiempoEmpleo.ToString())));
            ddlCargo.SelectedIndex = ddlCargo.Items.IndexOf(ddlCargo.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.Cargo.ToString())));
            ddlPosicion.SelectedIndex = ddlPosicion.Items.IndexOf(ddlPosicion.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.Posicion.ToString())));
            ddlCiiuGrupo.SelectedIndex = ddlCiiuGrupo.Items.IndexOf(ddlCiiuGrupo.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.CIIUGrupo.ToString())));

            CiiuBE oCiiu = new CiiuBE();
            oCiiu.Grupo = int.Parse(Utilitario.DarFormatoEnteroCero(ddlCiiuGrupo.SelectedValue));
            oPresenter.ListarCiiuActividad(oCiiu);

            ddlCiiuActividad.SelectedIndex = ddlCiiuActividad.Items.IndexOf(ddlCiiuActividad.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.CIIUActividad.ToString())));
            txtTitular.Text = oSolicitudBE.IngresosTitular.ToString();
            txtConyuge.Text = oSolicitudBE.IngresosConyuge.ToString();
            txtOtros2.Text = oSolicitudBE.IngresosOtros.ToString();

            txtDptoProvDistNegocio.Text = oSolicitudBE.DepartamentoJ + " - " + oSolicitudBE.ProvinciaJ + " - " +oSolicitudBE.DistritoLaboral;            
            //regimen laboral 
            //tipo actividad
            //tipo local
            //giro negocio
            #endregion
            
            #region Informacion del Credito Solicitado
            ddlCreditoSolMoneda.SelectedIndex = ddlCreditoSolMoneda.Items.IndexOf(ddlCreditoSolMoneda.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.MonedaCredito.ToString())));
            txtCreditoSolMonto.Text = oSolicitudBE.ImporteCredito.ToString();
            txtCreditoSolPlazo.Text = oSolicitudBE.Plazo.ToString();
            txtCreditoSolTasa.Text = oSolicitudBE.ImporteTasa.ToString();
            txtCreditoSolCuota.Text = oSolicitudBE.ImporteCuota.ToString();
            UCPrimerVencimiento.Value = oSolicitudBE.FechaPrimerVencimiento;
            txtComentariosCreditos.Text = oSolicitudBE.ObservacionesSolicitudes.Trim();
            txtFechaResolucion.Text = oSolicitudBE.FechaResolucion.ToString().Substring(0, 10);
            txtPuntaje.Text = oSolicitudBE.PuntajeScoring.ToString();
            txtRatioMora.Text = oSolicitudBE.ProbabilidadMora.ToString();
            txtCapCreditoSol.Text = oSolicitudBE.CapacidadCredito.ToString();
            txtCreditoSugSol.Text = oSolicitudBE.CreditoSugerido.ToString();
            txtMontoGAT.Text = oSolicitudBE.ImporteValorGAT.ToString();
            txtValorDesgravamen.Text = oSolicitudBE.ValorDesgravamen.ToString();
            txtMontoTotal.Text = Convert.ToString(oSolicitudBE.ImporteCredito + oSolicitudBE.ValorDesgravamen + oSolicitudBE.ImporteValorGAT);

            ddlDesgravamen.SelectedIndex = ddlDesgravamen.Items.IndexOf(ddlDesgravamen.Items.FindByValue(Utilitario.DarFormatoEnteroCero(oSolicitudBE.CodigoDesgravamen.ToString())));
                
            #endregion
            ConfigurarInterfaz(Utilitario.ModoInterfaz.ModoBuscar);
            if (oSolicitudBE.Estado == 1 || oSolicitudBE.Estado == 2)
            {
                UCBarraHerramientas1.btnEditar.Enabled = true;
                UCBarraHerramientas1.btnRechaza.Enabled = true;
                UCBarraHerramientas1.btnObserva.Enabled = true;
            }
            if (oSolicitudBE.Estado == 3)
            {
                UCBarraHerramientas1.btnEditar.Enabled = true;
                UCBarraHerramientas1.btnRechaza.Enabled = true;
                UCBarraHerramientas1.btnObserva.Enabled = false;
            }

            if (oSolicitudBE.Estado == 4)
            {
                UCBarraHerramientas1.btnEditar.Enabled = false;
            }
            if (oSolicitudBE.Estado == 5)
            {
                UCBarraHerramientas1.btnEditar.Enabled = false;
                UCBarraHerramientas1.btnRechaza.Enabled = false;
                UCBarraHerramientas1.btnObserva.Enabled = true;
            }
            if (oSolicitudBE.Estado == 6)
            {
                UCBarraHerramientas1.btnEditar.Enabled = false;
            }

            oSolicitudBE.NumeroSolicitud = int.Parse(txtNroSolicitud.Text);            
            SolicitudBETemp = oSolicitudBE;
        }

        else
        {
            MostrarMensajeError("Solicitud no encontrada o no existe");
        }
    }



    #endregion

    #region IFormsManSolicitudView Members


    void IFormsManSolicitudView.CargarCIIUActividad(List<CiiuBE> lstParametro)
    {
        UIBindable.Bind(ddlCiiuActividad, lstParametro, "Actividad", "Descripcion");
        UIBindable.InsertarSeleccionar(ddlCiiuActividad);
    }
   
    #endregion

    #region IFormsManSolicitudView Members


    public void CargarCliente(List<ClienteBE> lstCliente)
    {
        if (lstCliente.Count > 0)
        {
            foreach (ClienteBE item in lstCliente)
            {
                txtApellidoPaterno.Text = item.ApellidoPaterno.ToUpper();
                txtApellidoMaterno.Text = item.ApellidoMaterno.ToUpper();
                txtNombre1.Text = item.Nombre.ToUpper();
                txtNombre2.Text = item.SegundoNombre.ToUpper();
                try { ddlNacionalidad.SelectedValue = item.CodigoNacionalidad.ToString(); }
                catch (Exception) { }
                try { ddlSexo.SelectedValue = item.CodigoSexo.ToString(); }
                catch (Exception) { }
                txtDireccionPersona.Text = item.Direccion.ToUpper();
                UCFechaNacimiento.Value = item.FechaNacimiento;
            }
        }
    }
    public void CargarNegocio(List<ClienteBE> lstCliente)
    {
        if (lstCliente.Count > 0)
        {
            foreach (ClienteBE item in lstCliente)
            {                
                txtRazonSocial.Text = item.RazonSolcial.ToUpper();
                txtDireccionNegocio.Text = item.Direccion.ToUpper();
            }
        }
    }
    #endregion


    #region IFormsManSolicitudView Members


    public void CargarCaluloTasa(Tasa tasa)
    {

        txtCreditoSolTasa.Text = tasa.TasaInteres.ToString();
        txtCreditoSolCuota.Text = tasa.ValorCuota.ToString();
        txtValorDesgravamen.Text = tasa.ValorSeguroDesgravamen.ToString();
        txtMontoGAT.Text = tasa.ComisionDesembolso.ToString();
        txtMontoTotal.Text = tasa.ImporteTotal.ToString();
        
    }

    #endregion


    
    
}
